package co.baiku.boot.request;


import java.util.HashMap;
import java.util.HashSet;
import java.util.Map;

/**
 * 刷脸授权
 */
public class WeixinFaceAuthInfoRequest implements WeixinPayRequest {

    public WeixinFaceAuthInfoRequest() {
    }

    @Override
    public Map<String, String> toMap() {
        Map<String, String> data = new HashMap<>();
        data.put("sub_mch_id", sub_mch_id);
        data.put("sub_appid", sub_appid);
        data.put("store_id", store_id);
        data.put("store_name", store_name);
        data.put("device_id", device_id);
        data.put("attach", attach);
        data.put("rawdata", rawdata);
        data.put("now", now + "");
        data.put("version", version);
        HashSet<String> toRm = new HashSet();
        data.forEach((k, v) -> {
            if (v == null) {
                toRm.add(k);
            }
        });
        for (String o : toRm) {
            data.remove(o);
        }
        return data;
    }

    /**
     * 子商户公众账号ID(选填)
     * <p>
     * 微信分配的子商户公众账号ID，如需在支付完成后获取sub_openid则此参数必传。
     * </p>
     */
    private String sub_appid;
    /**
     * 子商户号(支付服务商时必填)
     * <p>
     * 微信支付分配的子商户号
     * </p>
     */
    private String sub_mch_id;
    /**
     * 门店编号， 由商户定义， 各门店唯一。
     */
    private String store_id;
    /**
     * 门店名称，由商户定义。（可用于展示）
     */
    private String store_name;
    /**
     * 终端设备编号，由商户定义。
     */
    private String device_id;
    /**
     * 附加字段。字段格式使用Json
     */
    private String attach;
    /**
     * 初始化数据。由微信人脸SDK的接口返回。
     * 获取方式参见：
     * [获取数据 getWxpayfaceRawdata](#获取数据 getWxpayfaceRawdata)
     * [获取数据 getWxpayfaceRawdata](#获取数据 getWxpayfaceRawdata)
     */
    private String rawdata;
    /**
     * 取当前时间，10位unix时间戳。 例如：1239878956
     */
    private Integer now = (int) (System.currentTimeMillis() / 1000);
    private String version = "1";

    public String getSub_appid() {
        return sub_appid;
    }

    public void setSub_appid(String sub_appid) {
        this.sub_appid = sub_appid;
    }

    public String getSub_mch_id() {
        return sub_mch_id;
    }

    public void setSub_mch_id(String sub_mch_id) {
        this.sub_mch_id = sub_mch_id;
    }

    public String getStore_id() {
        return store_id;
    }

    public void setStore_id(String store_id) {
        this.store_id = store_id;
    }

    public String getStore_name() {
        return store_name;
    }

    public void setStore_name(String store_name) {
        this.store_name = store_name;
    }

    public String getDevice_id() {
        return device_id;
    }

    public void setDevice_id(String device_id) {
        this.device_id = device_id;
    }

    public String getAttach() {
        return attach;
    }

    public void setAttach(String attach) {
        this.attach = attach;
    }

    public String getRawdata() {
        return rawdata;
    }

    public void setRawdata(String rawdata) {
        this.rawdata = rawdata;
    }

    public Integer getNow() {
        return now;
    }

    public void setNow(Integer now) {
        this.now = now;
    }

    public String getVersion() {
        return version;
    }

    public void setVersion(String version) {
        this.version = version;
    }
}
